﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Text;

namespace MikroObject
{
    public class Mikro : IBackOffice
    {
        public virtual bool AddtoAnaGrup(string kod, string adi, SqlTransaction trn)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("if exists(select san_RECno from STOK_ANA_GRUPLARI where san_kod= '{0}')");
            sb.Append("update STOK_ANA_GRUPLARI set san_SpecRECno=0,san_iptal=0,san_fileid=11,san_hidden=0,san_kilitli=0,san_degisti=0,san_checksum=0,san_lastup_user=1,san_lastup_date='{2}',san_special1='',san_special2='',san_special3='',san_isim='{1}' where san_kod='{0}' else ");
            sb.Append("insert into STOK_ANA_GRUPLARI (san_RECid_DBCno,san_RECid_RECno,san_SpecRECno,san_iptal,san_fileid,san_hidden,san_kilitli,san_degisti,san_checksum,san_create_user,san_create_date,san_lastup_user,san_lastup_date,san_special1,san_special2,san_special3,san_kod,san_isim) values (0,-1,0,0,11,0,0,0,0,1,'{2}',1,'{2}','','','','{0}','{1}') ");
            sb.Append(";update STOK_ANA_GRUPLARI set san_RECid_RECno=san_RECno where san_RECid_RECno=-1");

            try
            {
                Data.Get.ExecQuery(string.Format(sb.ToString(), kod, adi, string.Format("{0}-{1}-{2} {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second)), trn);
                return true;
            }
            catch (Exception ex)
            {
                Logging.GetLog.ErrorLog(ex);
                return false;
            }
        }

        public virtual bool AddtoAltGrup(string kod, string adi, string anagrupkod, SqlTransaction trn)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("if exists(select sta_RECno from STOK_ALT_GRUPLARI where sta_kod= '{0}')");
            sb.Append("update STOK_ALT_GRUPLARI set sta_SpecRECno=0,sta_iptal=0,sta_fileid=12,sta_hidden=0,sta_kilitli=0,sta_degisti=0,sta_checksum=0,sta_lastup_user=1,sta_lastup_date='{2}',sta_special1='',sta_special2='',sta_special3='',sta_isim='{1}' where sta_kod='{0}' else ");
            sb.Append("insert into STOK_ALT_GRUPLARI (sta_RECid_DBCno,sta_RECid_RECno,sta_SpecRECno,sta_iptal,sta_fileid,sta_hidden,sta_kilitli,sta_degisti,sta_checksum,sta_create_user,sta_create_date,sta_lastup_user,sta_lastup_date,sta_special1,sta_special2,sta_special3,sta_kod,sta_isim,sta_ana_grup_kod) values (0,-1,0,0,12,0,0,0,0,1,'{2}',1,'{2}','','','','{0}','{1}','{3}') ");
            sb.Append(";update STOK_ALT_GRUPLARI set sta_RECid_RECno=sta_RECno where sta_RECid_RECno=-1");

            try
            {
                Data.Get.ExecQuery(string.Format(sb.ToString(), kod, adi, string.Format("{0}-{1}-{2} {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second), anagrupkod), trn);
                return true;
            }
            catch (Exception ex)
            {
                Logging.GetLog.ErrorLog(ex);
                return false;
            }
        }

        public virtual bool AddtoTeminci(string kod, string adi, string adi2, string telefon1, string telefon2, string fax, string ilgikisi, string email, string muhasebeKodu, string vergidaire, string vergino, string adres1, string adres2, SqlTransaction trn)
        {

            StringBuilder sb = new StringBuilder();
            sb.Append("if exists(select cari_RECno from CARI_HESAPLAR WITH (NOLOCK) where cari_kod= '{0}')");
            sb.Append("update CARI_HESAPLAR set cari_SpecRECno=0,cari_iptal=0,cari_fileid=31,cari_hidden=0,cari_kilitli=0,cari_degisti=0,cari_checksum=0,cari_lastup_user=1,cari_lastup_date='{1}',cari_special1='',cari_special2='',cari_special3='',cari_unvan1='{2}',cari_unvan2='{3}',cari_hareket_tipi=0,cari_tipi=1,cari_doviz_cinsi=0,cari_doviz_cinsi1=255,cari_doviz_cinsi2=255,cari_vade_fark_yuz=25,cari_vade_fark_yuz1=0,cari_vade_fark_yuz2=0,cari_KurHesapSekli=1,cari_vdaire_adi='{4}',cari_vdaire_no='{5}',cari_sicil_no='',cari_VergiKimlikNo='',cari_satis_fk=1,cari_odeme_cinsi=0,cari_odeme_gunu=0,cari_odemeplan_no=0,cari_opsiyon_gun=0,cari_cariodemetercihi=0,cari_fatura_adres_no=1,cari_sevk_adres_no=1,cari_banka_tcmb_subekod1='',cari_banka_tcmb_ilkod1='',cari_banka_hesapno1='',cari_banka_tcmb_subekod2='',cari_banka_tcmb_ilkod2='',cari_banka_hesapno2='',cari_banka_tcmb_subekod3='',cari_banka_tcmb_ilkod3='',cari_banka_hesapno3='',cari_EftHesapNum=1,cari_muhartikeli='',cari_firma_acik_kapal=0,cari_BUV_tabi_fl=0,cari_cari_kilitli_flg=0,cari_etiket_bas_fl=0,cari_Detay_incele_flg=0,cari_POS_ongpesyuzde=0,cari_POS_ongtaksayi=0,cari_POS_ongIskOran=0,cari_kaydagiristarihi='1899-12-30',cari_KabEdFCekTutar=0,cari_hal_caritip='T',cari_HalKomYuzdesi=0,cari_TeslimSuresi=0,cari_UserNo=0,cari_wwwadresi='',cari_EMail='{6}',cari_CepTel='',cari_MustahsilBagkurlu=0,cari_MustahsilBagkurBasTar='1899-12-30',cari_MustahsilBagkurBitTar='1899-12-30',cari_MustahsilBabaAdi='',cari_MustahsilDogumYer='',cari_MustahsilDogumTar='1899-12-30',cari_MustahsilSosGuvDurumu='',cari_MustahsilDonum=0,cari_VarsayilanGirisDepo=0,cari_VarsayilanCikisDepo=0,cari_Portal_Enabled=0,cari_Portal_PW='',cari_BagliOrtaklisa_Firma=0,cari_MustahsilCuzdanNo='',cari_MustahsilFabrikaKodu='',cari_MustahsilFabrikaAdi='',cari_MustahsilRuhsatNo='',cari_MustahsilBelgeNo='',cari_MustahsilGecerlilikTarihi='1899-12-30',cari_MustahsilZiraatOdasi='',cari_kampanyakodu='',cari_bakiye_degerlendirilmesin_fl=0,cari_irsbakiye_degerlendirilmesin_fl=0,cari_sipbakiye_degerlendirilmesin_fl=0,cari_muh_kod='{7}' where cari_kod='{0}' else ");
            sb.Append("insert into CARI_HESAPLAR (cari_RECid_DBCno,cari_RECid_RECno,cari_SpecRECno,cari_iptal,cari_fileid,cari_hidden,cari_kilitli,cari_degisti,cari_checksum,cari_create_user,cari_create_date,cari_lastup_user,cari_lastup_date,cari_special1,cari_special2,cari_special3,cari_kod,cari_unvan1,cari_unvan2,cari_hareket_tipi,cari_tipi,cari_muh_kod,cari_muh_kod1,cari_muh_kod2,cari_doviz_cinsi,cari_doviz_cinsi1,cari_doviz_cinsi2,cari_vade_fark_yuz,cari_vade_fark_yuz1,cari_vade_fark_yuz2,cari_KurHesapSekli,cari_vdaire_adi,cari_vdaire_no,cari_sicil_no,cari_VergiKimlikNo,cari_satis_fk,cari_odeme_cinsi,cari_odeme_gunu,cari_odemeplan_no,cari_opsiyon_gun,cari_cariodemetercihi,cari_fatura_adres_no,cari_sevk_adres_no,cari_banka_tcmb_kod1,cari_banka_tcmb_subekod1,cari_banka_tcmb_ilkod1,cari_banka_hesapno1,cari_banka_tcmb_kod2,cari_banka_tcmb_subekod2,cari_banka_tcmb_ilkod2,cari_banka_hesapno2,cari_banka_tcmb_kod3,cari_banka_tcmb_subekod3,cari_banka_tcmb_ilkod3,cari_banka_hesapno3,cari_EftHesapNum,cari_Ana_cari_kodu,cari_satis_isk_kod,cari_sektor_kodu,cari_bolge_kodu,cari_grup_kodu,cari_temsilci_kodu,cari_muhartikeli,cari_firma_acik_kapal,cari_BUV_tabi_fl,cari_cari_kilitli_flg,cari_etiket_bas_fl,cari_Detay_incele_flg,cari_POS_ongpesyuzde,cari_POS_ongtaksayi,cari_POS_ongIskOran,cari_kaydagiristarihi,cari_KabEdFCekTutar,cari_hal_caritip,cari_HalKomYuzdesi,cari_TeslimSuresi,cari_UserNo,cari_wwwadresi,cari_EMail,cari_CepTel,cari_MustahsilBagkurlu,cari_MustahsilBagkurBasTar,cari_MustahsilBagkurBitTar,cari_MustahsilBabaAdi,cari_MustahsilDogumYer,cari_MustahsilDogumTar,cari_MustahsilSosGuvDurumu,cari_MustahsilDonum,cari_VarsayilanGirisDepo,cari_VarsayilanCikisDepo,cari_Portal_Enabled,cari_Portal_PW,cari_BagliOrtaklisa_Firma,cari_MustahsilCuzdanNo,cari_MustahsilFabrikaKodu,cari_MustahsilFabrikaAdi,cari_MustahsilRuhsatNo,cari_MustahsilBelgeNo,cari_MustahsilGecerlilikTarihi,cari_MustahsilZiraatOdasi,cari_kampanyakodu,cari_bakiye_degerlendirilmesin_fl,cari_irsbakiye_degerlendirilmesin_fl,cari_sipbakiye_degerlendirilmesin_fl) values (0,-1,0,0,31,0,0,0,0,1,'{1}',1,'{1}','','','','{0}','{2}','',0,1,'{7}','','',0,255,255,25,0,0,1,'{4}','{5}','','',1,0,0,0,0,0,1,1,'','','','','','','','','','','','',1,'','','','','','','',0,0,0,0,0,0,0,0,'1899-12-30',0,'T',0,0,0,'','{6}','',0,'1899-12-30','1899-12-30','','','1899-12-30','',0,0,0,0,'',0,'','','','','','1899-12-30','','',0,0,0) ");
            sb.Append(";update CARI_HESAPLAR set cari_RECid_RECno=cari_RECno where cari_RECid_RECno=-1");

            StringBuilder sb2 = new StringBuilder();
            sb2.Append("if exists(select adr_RECno from CARI_HESAP_ADRESLERI WITH (NOLOCK) where adr_cari_kod= '{0}' AND adr_adres_no=1)");
            sb2.Append("update CARI_HESAP_ADRESLERI set adr_SpecRECno=0,adr_iptal=0,adr_fileid=32,adr_hidden=0,adr_kilitli=0,adr_degisti=0,adr_checksum=0,adr_lastup_user=1,adr_lastup_date='{1}',adr_special1='',adr_special2='',adr_special3='',adr_adres_no=1,adr_aprint_fl=0,adr_cadde='{2}',adr_sokak='{3}',adr_ilce='',adr_il='',adr_ulke='',adr_tel_no1='{4}',adr_tel_no2='{5}',adr_tel_faxno='{6}',adr_tel_modem='',adr_ozel_not='',adr_ziyaretperyodu=0,adr_ziyaretgunu=0,adr_gps_enlem=0,adr_gps_boylam=0,adr_ziyarethaftasi=0,adr_ziygunu2_1=0,adr_ziygunu2_2=0,adr_ziygunu2_3=0,adr_ziygunu2_4=0,adr_ziygunu2_5=0,adr_ziygunu2_6=0,adr_ziygunu2_7=0 where adr_cari_kod='{0}' else ");
            sb2.Append("insert into CARI_HESAP_ADRESLERI (adr_RECid_DBCno,adr_RECid_RECno,adr_SpecRECno,adr_iptal,adr_fileid,adr_hidden,adr_kilitli,adr_degisti,adr_checksum,adr_create_user,adr_create_date,adr_lastup_user,adr_lastup_date,adr_special1,adr_special2,adr_special3,adr_cari_kod,adr_adres_no,adr_aprint_fl,adr_cadde,adr_sokak,adr_posta_kodu,adr_ilce,adr_il,adr_ulke,adr_tel_ulke_kodu,adr_tel_bolge_kodu,adr_tel_no1,adr_tel_no2,adr_tel_faxno,adr_tel_modem,adr_yon_kodu,adr_uzaklik_kodu,adr_temsilci_kodu,adr_ozel_not,adr_ziyaretperyodu,adr_ziyaretgunu,adr_gps_enlem,adr_gps_boylam,adr_ziyarethaftasi,adr_ziygunu2_1,adr_ziygunu2_2,adr_ziygunu2_3,adr_ziygunu2_4,adr_ziygunu2_5,adr_ziygunu2_6,adr_ziygunu2_7) values (0,-1,0,0,32,0,0,0,0,1,'{1}',1,'{1}','','','','{0}',1,0,'{2}','{3}','','','','','','','{4}','{5}','{6}','','',0,'','',0,0,0,0,0,0,0,0,0,0,0,0) ");
            sb2.Append(";update CARI_HESAP_ADRESLERI set adr_RECid_RECno=adr_RECno where adr_RECid_RECno=-1");

            try
            {
                Data.Get.ExecQuery(string.Format(sb.ToString(), kod, string.Format("{0}-{1}-{2} {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second), adi, adi2, vergidaire, vergino, email, muhasebeKodu), trn);
                if (!string.IsNullOrEmpty(adres1) || !string.IsNullOrEmpty(adres2) || !string.IsNullOrEmpty(telefon1) || !string.IsNullOrEmpty(telefon2) || !string.IsNullOrEmpty(fax))
                    Data.Get.ExecQuery(string.Format(sb2.ToString(), kod, string.Format("{0}-{1}-{2} {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second), adres1, adres2, telefon1, telefon2, fax), trn);

                return true;
            }
            catch (Exception ex)
            {
                Logging.GetLog.ErrorLog(ex);
                return false;
            }
        }

        public virtual bool AddToStok(string kod, string adi, string ana_grup_kod, string birim1_ad, decimal birim1_katsayi, string birim2_ad, decimal birim2_katsayi, string alt_grup_kod, string teminci_kod, int kdv_orani, string muhasebekodu, decimal fiyat1, decimal fiyat2, decimal fiyat3, SqlTransaction trn)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("if exists(select sto_RECno from STOKLAR WITH (NOLOCK) where sto_kod= '{0}')");
            sb.Append("update STOKLAR set sto_SpecRECno=0,sto_iptal=0,sto_fileid=13,sto_hidden=0,sto_kilitli=0,sto_degisti=0,sto_checksum=0,sto_lastup_user=1,sto_lastup_date='{1}',sto_special1='',sto_special2='',sto_special3='',sto_isim='{2}',sto_kisa_ismi='',sto_yabanci_isim='',sto_cins=0,sto_doviz_cinsi=0,sto_detay_takip=0,sto_birim1_ad='{3}',sto_birim1_katsayi={4},sto_birim1_agirlik=0,sto_birim1_en=0,sto_birim1_boy=0,sto_birim1_yukseklik=0,sto_birim1_dara=0,sto_birim2_ad='{5}',sto_birim2_katsayi={6},sto_birim2_agirlik=0,sto_birim2_en=0,sto_birim2_boy=0,sto_birim2_yukseklik=0,sto_birim2_dara=0,sto_birim3_ad='',sto_birim3_katsayi=0,sto_birim3_agirlik=0,sto_birim3_en=0,sto_birim3_boy=0,sto_birim3_yukseklik=0,sto_birim3_dara=0,sto_birim4_ad='',sto_birim4_katsayi=0,sto_birim4_agirlik=0,sto_birim4_en=0,sto_birim4_boy=0,sto_birim4_yukseklik=0,sto_birim4_dara=0,sto_karorani=0,sto_min_stok=0,sto_siparis_stok=0,sto_max_stok=0,sto_ver_sip_birim=0,sto_al_sip_birim=0,sto_siparis_sure=0,sto_perakende_vergi={7},sto_toptan_vergi={7},sto_alternatif1='',sto_alternatif2='',sto_alternatif3='',sto_alternatif4='',sto_alternatif5='',sto_elk_etk_tipi=0,sto_raf_etiketli=1,sto_etiket_bas=1,sto_satis_dursun=0,sto_siparis_dursun=0,sto_malkabul_dursun=0,sto_malkabul_gun1=0,sto_malkabul_gun2=0,sto_malkabul_gun3=0,sto_malkabul_gun4=0,sto_malkabul_gun5=0,sto_malkabul_gun6=0,sto_malkabul_gun7=0,sto_siparis_gun1=0,sto_siparis_gun2=0,sto_siparis_gun3=0,sto_siparis_gun4=0,sto_siparis_gun5=0,sto_siparis_gun6=0,sto_siparis_gun7=0,sto_iskon_yapilamaz=0,sto_tasfiyede=0,sto_alt_grup_no=0,sto_urun_sorkod='',sto_mkod_artik='',sto_kasa_tarti_fl=0,sto_bedenli_takip=0,sto_renkDetayli=0,sto_miktarondalikli_fl=0,sto_pasif_fl=0,sto_calisan_vi_gecerli=0,sto_eksiyedusebilir_fl=0,sto_GtipNo='',sto_puan=0,sto_komisyon_hzmkodu='',sto_komisyon_orani=0,sto_otvuygulama=0,sto_otvtutar=0,sto_otvliste=0,sto_otvbirimi=1,sto_prim_orani=0,sto_garanti_sure=0,sto_iplik_Ne_no=0,sto_standartmaliyet=0,sto_kanban_kasa_miktari=0,sto_oivuygulama=0,sto_zraporu_stoku_fl=0,sto_maxiskonto_orani=0,sto_detay_takibinde_depo_kontrolu_fl=0,sto_oto_barkod_acma_sekli=0,sto_KasaIskontoOrani=0,sto_KasaIskontoTutari=0,sto_gelirpayi=0,sto_giderkodu='',sto_sat_cari_kod='{8}',sto_altgrup_kod='{9}',sto_anagrup_kod='{10}',sto_muhgrup_kodu='{11}' where sto_kod='{0}' else ");
            sb.Append("insert into STOKLAR (sto_RECid_DBCno,sto_RECid_RECno,sto_SpecRECno,sto_iptal,sto_fileid,sto_hidden,sto_kilitli,sto_degisti,sto_checksum,sto_create_user,sto_create_date,sto_lastup_user,sto_lastup_date,sto_special1,sto_special2,sto_special3,sto_kod,sto_isim,sto_kisa_ismi,sto_yabanci_isim,sto_sat_cari_kod,sto_cins,sto_doviz_cinsi,sto_detay_takip,sto_birim1_ad,sto_birim1_katsayi,sto_birim1_agirlik,sto_birim1_en,sto_birim1_boy,sto_birim1_yukseklik,sto_birim1_dara,sto_birim2_ad,sto_birim2_katsayi,sto_birim2_agirlik,sto_birim2_en,sto_birim2_boy,sto_birim2_yukseklik,sto_birim2_dara,sto_birim3_ad,sto_birim3_katsayi,sto_birim3_agirlik,sto_birim3_en,sto_birim3_boy,sto_birim3_yukseklik,sto_birim3_dara,sto_birim4_ad,sto_birim4_katsayi,sto_birim4_agirlik,sto_birim4_en,sto_birim4_boy,sto_birim4_yukseklik,sto_birim4_dara,sto_muh_kod,sto_muh_Iade_kod,sto_muh_sat_muh_kod,sto_muh_satIadmuhkod,sto_muh_sat_isk_kod,sto_muh_aIiskmuhkod,sto_muh_satmalmuhkod,sto_yurtdisi_satmuhk,sto_ilavemasmuhkod,sto_yatirimtesmuhkod,sto_depsatmuhkod,sto_depsatmalmuhkod,sto_bagortsatmuhkod,sto_satfiyfarkmuhkod,sto_yurtdisisatmalmuhkod,sto_bagortsatmalmuhkod,sto_karorani,sto_min_stok,sto_siparis_stok,sto_max_stok,sto_ver_sip_birim,sto_al_sip_birim,sto_siparis_sure,sto_perakende_vergi,sto_toptan_vergi,sto_yer_kod,sto_alternatif1,sto_alternatif2,sto_alternatif3,sto_alternatif4,sto_alternatif5,sto_elk_etk_tipi,sto_raf_etiketli,sto_etiket_bas,sto_satis_dursun,sto_siparis_dursun,sto_malkabul_dursun,sto_malkabul_gun1,sto_malkabul_gun2,sto_malkabul_gun3,sto_malkabul_gun4,sto_malkabul_gun5,sto_malkabul_gun6,sto_malkabul_gun7,sto_siparis_gun1,sto_siparis_gun2,sto_siparis_gun3,sto_siparis_gun4,sto_siparis_gun5,sto_siparis_gun6,sto_siparis_gun7,sto_iskon_yapilamaz,sto_tasfiyede,sto_alt_grup_no,sto_kategori_kodu,sto_urun_sorkod,sto_altgrup_kod,sto_anagrup_kod,sto_uretici_kodu,sto_sektor_kodu,sto_reyon_kodu,sto_muhgrup_kodu,sto_ambalaj_kodu,sto_marka_kodu,sto_beden_kodu,sto_renk_kodu,sto_model_kodu,sto_sezon_kodu,sto_hammadde_kodu,sto_prim_kodu,sto_kalkon_kodu,sto_paket_kodu,sto_mkod_artik,sto_kasa_tarti_fl,sto_bedenli_takip,sto_renkDetayli,sto_miktarondalikli_fl,sto_pasif_fl,sto_calisan_vi_gecerli,sto_eksiyedusebilir_fl,sto_GtipNo,sto_puan,sto_komisyon_hzmkodu,sto_komisyon_orani,sto_otvuygulama,sto_otvtutar,sto_otvliste,sto_otvbirimi,sto_prim_orani,sto_garanti_sure,sto_iplik_Ne_no,sto_standartmaliyet,sto_kanban_kasa_miktari,sto_oivuygulama,sto_zraporu_stoku_fl,sto_maxiskonto_orani,sto_detay_takibinde_depo_kontrolu_fl,sto_tamamlayici_kodu,sto_oto_barkod_acma_sekli,sto_oto_barkod_kod_yapisi,sto_KasaIskontoOrani,sto_KasaIskontoTutari,sto_gelirpayi,sto_giderkodu) values (0,-1,0,0,13,0,0,0,0,1,'{1}',1,'{1}','','','','{0}','{2}','','','{8}',0,0,0,'{3}',{4},0,0,0,0,0,'{5}',{6},0,0,0,0,0,'',0,0,0,0,0,0,'',0,0,0,0,0,0,'153','153','600','610','611','153','621','601','153','258','600','621','600','600','621','621',0,0,0,0,0,0,0,{7},{7},'','','','','','',0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','','{9}','{10}','','','','{11}','','','','','','','','','','','',0,0,0,0,0,0,0,'',0,'',0,0,0,0,1,0,0,0,0,0,0,0,0,0,'',0,'',0,0,0,'') ");
            sb.Append(";update STOKLAR set sto_RECid_RECno=sto_RECno where sto_RECid_RECno=-1");

            try
            {
                Data.Get.ExecQuery(string.Format(sb.ToString(), kod, string.Format("{0}-{1}-{2} {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second), adi, birim1_ad, birim1_katsayi, birim2_ad, birim2_katsayi, kdv_orani, teminci_kod, alt_grup_kod, ana_grup_kod, muhasebekodu), trn);

                StringBuilder sb2 = new StringBuilder();
                sb2.Append("if exists(SELECT     sfiyat_RECno  FROM         STOK_SATIS_FIYAT_LISTELERI WHERE     (sfiyat_stokkod = '{0}') AND (sfiyat_listesirano = @fiyatno) AND (sfiyat_deposirano = 0) AND (sfiyat_odemeplan = 0)) ");
                sb2.Append("delete from STOK_SATIS_FIYAT_LISTELERI where    (sfiyat_stokkod = '{0}') AND (sfiyat_listesirano = @fiyatno) AND (sfiyat_deposirano = 0) AND (sfiyat_odemeplan = 0);");
                sb2.Append("INSERT INTO STOK_SATIS_FIYAT_LISTELERI (sfiyat_RECid_DBCno, sfiyat_RECid_RECno, sfiyat_SpecRECno, sfiyat_iptal, sfiyat_fileid, sfiyat_hidden, sfiyat_kilitli, sfiyat_degisti, sfiyat_checksum,sfiyat_create_user, sfiyat_create_date, sfiyat_lastup_user, sfiyat_lastup_date, sfiyat_special1, sfiyat_special2, sfiyat_special3, sfiyat_stokkod, sfiyat_listesirano,sfiyat_deposirano, sfiyat_odemeplan, sfiyat_fiyati, sfiyat_doviz, sfiyat_iskontokod, sfiyat_deg_nedeni, sfiyat_primyuzdesi, sfiyat_kampanyakod) ");
                sb2.Append("VALUES     (0, -1, 0, 0, 228, 0, 0, 0, 0, 1, {1}, 1, {1}, '', '', '', '{0}', @fiyatno, 0, 0, @fiyat, 0, '', 0,0,'')");
                sb2.Append(";update STOK_SATIS_FIYAT_LISTELERI set  sfiyat_RECid_RECno=sfiyat_RECno where sfiyat_RECid_RECno=-1");

                SqlParameter prm1 = new SqlParameter("@fiyat", SqlDbType.Float);
                SqlParameter prm2 = new SqlParameter("@fiyatno", SqlDbType.Float);

                prm1.Value = fiyat1;
                prm2.Value = 1;
                Data.Get.ExecQuery(string.Format(sb.ToString(), kod, string.Format("{0}-{1}-{2} {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second)), trn, prm1, prm2);

                prm1.Value = fiyat2;
                prm2.Value = 2;
                Data.Get.ExecQuery(string.Format(sb.ToString(), kod, string.Format("{0}-{1}-{2} {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second)), trn, prm1, prm2);

                prm1.Value = fiyat3;
                prm2.Value = 3;
                Data.Get.ExecQuery(string.Format(sb.ToString(), kod, string.Format("{0}-{1}-{2} {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second)), trn, prm1, prm2);

                return true;
            }
            catch (Exception ex)
            {
                Logging.GetLog.ErrorLog(ex);
                return false;
            }
        }

        public virtual Dictionary<int, int> KdvList()
        {
            DataTable dt = Data.Get.List("select dbo.fn_VergiYuzde(1) as oran union all select dbo.fn_VergiYuzde(2) union all select dbo.fn_VergiYuzde(3) union all select dbo.fn_VergiYuzde(4) union all select dbo.fn_VergiYuzde(5) union all select dbo.fn_VergiYuzde(6)");
            Dictionary<int, int> sonuc = new Dictionary<int, int>();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if (!sonuc.ContainsKey(Convert.ToInt32(dt.Rows[i][0])))
                    sonuc.Add(Convert.ToInt32(dt.Rows[i][0]), i + 1);
            }
            return sonuc;
        }

        public virtual bool AddtoDepo(string kod, string adi, SqlTransaction trn)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("if exists(select dep_RECno from DEPOLAR where dep_no= {0})");
            sb.Append("update DEPOLAR set dep_SpecRECno=0,dep_iptal=0,dep_fileid=111,dep_hidden=0,dep_kilitli=0,dep_degisti=0,dep_checksum=0,dep_lastup_user=1,dep_lastup_date='{1}',dep_special1='',dep_special2='',dep_special3='',dep_firmano=0,dep_subeno=0,dep_no={0},dep_adi='{2}',dep_tipi=0,dep_DepoSevkOtoFiyat=0,dep_hareket_tipi=0,dep_DepoSevkUygFiyat=0,dep_KilitTarihi='1899-12-30',dep_cadde='',dep_sokak='',dep_posta_Kodu='',dep_Ilce='',dep_Il='',dep_Ulke='',dep_gps_enlem=0,dep_gps_boylam=0,dep_alani=0,dep_rafhacmi=0,dep_yetkili_email='',dep_satis_alani=0,dep_sergi_alani=0,dep_otopark_alani=0,dep_otopark_kapasite=0,dep_kasa_sayisi=0,dep_kamyon_kasa_hacmi=0,dep_kamyon_istiab_haddi=0,dep_dizin_adi='',dep_tel_no1='',dep_tel_no2='',dep_tel_faxno='',dep_tel_modem='',dep_envanter_harici_fl=0,dep_detay_takibi=0,dep_barkod_yazici_yolu='' where dep_no={0} else ");
            sb.Append("insert into DEPOLAR (dep_RECid_DBCno,dep_RECid_RECno,dep_SpecRECno,dep_iptal,dep_fileid,dep_hidden,dep_kilitli,dep_degisti,dep_checksum,dep_create_user,dep_create_date,dep_lastup_user,dep_lastup_date,dep_special1,dep_special2,dep_special3,dep_firmano,dep_subeno,dep_no,dep_adi,dep_tipi,dep_DepoSevkOtoFiyat,dep_hareket_tipi,dep_muh_kodu,dep_sor_mer_kodu,dep_DepoSevkUygFiyat,dep_KilitTarihi,dep_cadde,dep_sokak,dep_posta_Kodu,dep_Ilce,dep_Il,dep_Ulke,dep_gps_enlem,dep_gps_boylam,dep_alani,dep_rafhacmi,dep_yetkili_email,dep_satis_alani,dep_sergi_alani,dep_otopark_alani,dep_otopark_kapasite,dep_kasa_sayisi,dep_kamyon_kasa_hacmi,dep_kamyon_istiab_haddi,dep_dizin_adi,dep_tel_ulke_kodu,dep_tel_bolge_kodu,dep_tel_no1,dep_tel_no2,dep_tel_faxno,dep_tel_modem,dep_envanter_harici_fl,dep_detay_takibi,dep_barkod_yazici_yolu,dep_fason_sor_mer_kodu) values (0,-1,0,0,111,0,0,0,0,1,'{1}',1,'{1}','','','',0,0,{0},'{2}',0,0,0,'','',0,'1899-12-30','','','','','','',0,0,0,0,'',0,0,0,0,0,0,0,'','','','','','','',0,0,'','') ");
            sb.Append(";update DEPOLAR set dep_RECid_RECno=dep_RECno where dep_RECid_RECno=-1");
            try
            {
                Data.Get.ExecQuery(string.Format(sb.ToString(), kod, string.Format("{0}-{1}-{2} {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second), adi), trn);
                return true;
            }
            catch (Exception ex)
            {
                Logging.GetLog.ErrorLog(ex);
                return false;
            }
        }

        public virtual int CharEkle(EvrakTipleri evrakTip, SqlTransaction trn, string evrakSeri, int evrakSira, DateTime evrakTarihi, decimal meblag, decimal[] vergiler, string saticiKodu, string cariKodu, decimal araToplam, string belgeNo, int vade, string aciklama, decimal isk1Tutar, decimal isk2Tutar, decimal isk3Tutar, int cariCins, string kasaKodu)
        {
            string sqlStr = "if exists(SELECT     cha_RECno FROM         CARI_HESAP_HAREKETLERI WHERE     (cha_evrak_tip = @cha_evrak_tip) AND (cha_evrakno_seri = @cha_evrakno_seri) AND (cha_evrakno_sira = @cha_evrakno_sira) AND (cha_satir_no = @cha_satir_no)) delete FROM CARI_HESAP_HAREKETLERI WHERE     (cha_evrak_tip = @cha_evrak_tip) AND (cha_evrakno_seri = @cha_evrakno_seri) AND (cha_evrakno_sira = @cha_evrakno_sira) AND (cha_satir_no = @cha_satir_no);insert into CARI_HESAP_HAREKETLERI (cha_RECid_DBCno,cha_RECid_RECno,cha_SpecRecNo,cha_iptal,cha_fileid,cha_hidden,cha_kilitli,cha_degisti,cha_CheckSum,cha_create_user,cha_create_date,cha_lastup_user,cha_lastup_date,cha_special1,cha_special2,cha_special3,cha_firmano,cha_subeno,cha_tarihi,cha_tip,cha_cinsi,cha_normal_Iade,cha_evrak_tip,cha_satir_no,cha_evrakno_seri,cha_evrakno_sira,cha_belge_no,cha_belge_tarih,cha_cari_cins,cha_kod,cha_kasa_hizmet,cha_kasa_hizkod,cha_d_kurtar,cha_d_cins,cha_d_kur,cha_altd_kur,cha_grupno,cha_meblag,cha_vade,cha_fis_tarih,cha_fis_sirano,cha_ft_iskonto1,cha_ft_iskonto2,cha_ft_iskonto3,cha_ft_iskonto4,cha_ft_iskonto5,cha_ft_iskonto6,cha_ft_masraf1,cha_ft_masraf2,cha_ft_masraf3,cha_ft_masraf4,cha_vergi1,cha_vergi2,cha_vergi3,cha_vergi4,cha_vergi5,cha_vergi6,cha_vergi7,cha_vergi8,cha_vergi9,cha_vergi10,cha_yuvarlama,cha_tpoz,cha_aciklama,cha_trefno,cha_sntck_poz,cha_karsidcinsi,cha_karsid_kur,cha_karsidgrupno,cha_srmrkkodu,cha_reftarihi,cha_odeme_arr1,cha_odeme_arr2,cha_odeme_arr3,cha_odeme_arr4,cha_odeme_arr5,cha_odeme_arr6,cha_odeme_arr7,cha_odeme_arr8,cha_miktari,cha_aratoplam,cha_vergipntr,cha_istisnakodu,cha_ver_tev_carpani,cha_stopaj,cha_savsandesfonu,cha_vergisiz_fl,cha_satici_kodu,cha_mustahsil_borsa,cha_mustahsil_bagkur,cha_mustahsil_diger,cha_HalMSDF,cha_HalHamaliye,cha_HalStopaj,cha_HalKomisyonu,cha_StFonPntr,cha_pos_hareketi,cha_vardiya_tarihi,cha_vardiya_no,cha_vardiya_evrak_ti,cha_HalRusum,cha_HalNavlunTut,cha_HalRehinFuture,cha_HalKomisyon,cha_Vade_Farki_Yuz,cha_karsisrmrkkodu,cha_EXIMkodu,cha_HalRehinSandikmiktari,cha_HalSandikVrMiktar,cha_HalSandikTutari,cha_HalSandikKDVTutari,cha_HalrehinSandikTutari,cha_Tevkifat_turu,cha_ticaret_turu,cha_otvtutari,cha_otvvergisiz_fl,cha_projekodu,cha_sozlesme_DBCno,cha_sozlesme_RECno,cha_yat_tes_kodu,cha_ciro_cari_kodu,cha_oivergisiz_fl,cha_meblag_ana_doviz_icin_gecersiz_fl,cha_meblag_alt_doviz_icin_gecersiz_fl,cha_meblag_orj_doviz_icin_gecersiz_fl,cha_ciroprim_DBCno,cha_ciroprim_RECno,cha_HalHamaliyeKdv,cha_HalHamaliyeVergisiz_fl) values (@cha_RECid_DBCno,@cha_RECid_RECno,@cha_SpecRecNo,@cha_iptal,@cha_fileid,@cha_hidden,@cha_kilitli,@cha_degisti,@cha_CheckSum,@cha_create_user,@cha_create_date,@cha_lastup_user,@cha_lastup_date,@cha_special1,@cha_special2,@cha_special3,@cha_firmano,@cha_subeno,@cha_tarihi,@cha_tip,@cha_cinsi,@cha_normal_Iade,@cha_evrak_tip,@cha_satir_no,@cha_evrakno_seri,@cha_evrakno_sira,@cha_belge_no,@cha_belge_tarih,@cha_cari_cins,@cha_kod,@cha_kasa_hizmet,@cha_kasa_hizkod,@cha_d_kurtar,@cha_d_cins,@cha_d_kur,@cha_altd_kur,@cha_grupno,@cha_meblag,@cha_vade,@cha_fis_tarih,@cha_fis_sirano,@cha_ft_iskonto1,@cha_ft_iskonto2,@cha_ft_iskonto3,@cha_ft_iskonto4,@cha_ft_iskonto5,@cha_ft_iskonto6,@cha_ft_masraf1,@cha_ft_masraf2,@cha_ft_masraf3,@cha_ft_masraf4,@cha_vergi1,@cha_vergi2,@cha_vergi3,@cha_vergi4,@cha_vergi5,@cha_vergi6,@cha_vergi7,@cha_vergi8,@cha_vergi9,@cha_vergi10,@cha_yuvarlama,@cha_tpoz,@cha_aciklama,@cha_trefno,@cha_sntck_poz,@cha_karsidcinsi,@cha_karsid_kur,@cha_karsidgrupno,@cha_srmrkkodu,@cha_reftarihi,@cha_odeme_arr1,@cha_odeme_arr2,@cha_odeme_arr3,@cha_odeme_arr4,@cha_odeme_arr5,@cha_odeme_arr6,@cha_odeme_arr7,@cha_odeme_arr8,@cha_miktari,@cha_aratoplam,@cha_vergipntr,@cha_istisnakodu,@cha_ver_tev_carpani,@cha_stopaj,@cha_savsandesfonu,@cha_vergisiz_fl,@cha_satici_kodu,@cha_mustahsil_borsa,@cha_mustahsil_bagkur,@cha_mustahsil_diger,@cha_HalMSDF,@cha_HalHamaliye,@cha_HalStopaj,@cha_HalKomisyonu,@cha_StFonPntr,@cha_pos_hareketi,@cha_vardiya_tarihi,@cha_vardiya_no,@cha_vardiya_evrak_ti,@cha_HalRusum,@cha_HalNavlunTut,@cha_HalRehinFuture,@cha_HalKomisyon,@cha_Vade_Farki_Yuz,@cha_karsisrmrkkodu,@cha_EXIMkodu,@cha_HalRehinSandikmiktari,@cha_HalSandikVrMiktar,@cha_HalSandikTutari,@cha_HalSandikKDVTutari,@cha_HalrehinSandikTutari,@cha_Tevkifat_turu,@cha_ticaret_turu,@cha_otvtutari,@cha_otvvergisiz_fl,@cha_projekodu,@cha_sozlesme_DBCno,@cha_sozlesme_RECno,@cha_yat_tes_kodu,@cha_ciro_cari_kodu,@cha_oivergisiz_fl,@cha_meblag_ana_doviz_icin_gecersiz_fl,@cha_meblag_alt_doviz_icin_gecersiz_fl,@cha_meblag_orj_doviz_icin_gecersiz_fl,@cha_ciroprim_DBCno,@cha_ciroprim_RECno,@cha_HalHamaliyeKdv,@cha_HalHamaliyeVergisiz_fl);SELECT @@IDENTITY";
            List<SqlParameter> prmList = new List<SqlParameter>();
            int[] tipler = CharEvrakTip(evrakTip);

            prmList.Add(new SqlParameter() { ParameterName = "@cha_RECid_DBCno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_RECid_RECno", SqlDbType = SqlDbType.Int, Value = -1 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_SpecRecNo", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_iptal", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_fileid", SqlDbType = SqlDbType.SmallInt, Value = 51 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_hidden", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_kilitli", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_degisti", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_CheckSum", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_create_user", SqlDbType = SqlDbType.SmallInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_create_date", SqlDbType = SqlDbType.DateTime, Value = evrakTarihi });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_lastup_user", SqlDbType = SqlDbType.SmallInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_lastup_date", SqlDbType = SqlDbType.DateTime, Value = evrakTarihi });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_special1", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_special2", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_special3", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_firmano", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_subeno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_tarihi", SqlDbType = SqlDbType.DateTime, Value = evrakTarihi });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_tip", SqlDbType = SqlDbType.TinyInt, Value = tipler[0] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_cinsi", SqlDbType = SqlDbType.TinyInt, Value = tipler[1] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_normal_Iade", SqlDbType = SqlDbType.TinyInt, Value = tipler[2] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_evrak_tip", SqlDbType = SqlDbType.TinyInt, Value = tipler[3] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_satir_no", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_evrakno_seri", SqlDbType = SqlDbType.NVarChar, Value = evrakSeri });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_evrakno_sira", SqlDbType = SqlDbType.Int, Value = evrakSira });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_belge_no", SqlDbType = SqlDbType.NVarChar, Value = belgeNo });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_belge_tarih", SqlDbType = SqlDbType.DateTime, Value = evrakTarihi });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_cari_cins", SqlDbType = SqlDbType.TinyInt, Value = cariCins });

            if (cariCins == 4)
                prmList.Add(new SqlParameter() { ParameterName = "@cha_kod", SqlDbType = SqlDbType.NVarChar, Value = kasaKodu });
            else
                prmList.Add(new SqlParameter() { ParameterName = "@cha_kod", SqlDbType = SqlDbType.NVarChar, Value = cariKodu });

            prmList.Add(new SqlParameter() { ParameterName = "@cha_kasa_hizmet", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_kasa_hizkod", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_d_kurtar", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_d_cins", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_d_kur", SqlDbType = SqlDbType.Float, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_altd_kur", SqlDbType = SqlDbType.Float, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_grupno", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_meblag", SqlDbType = SqlDbType.Float, Value = meblag });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vade", SqlDbType = SqlDbType.Int, Value = vade });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_fis_tarih", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_fis_sirano", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto1", SqlDbType = SqlDbType.Float, Value = isk1Tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto2", SqlDbType = SqlDbType.Float, Value = isk2Tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto3", SqlDbType = SqlDbType.Float, Value = isk3Tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto4", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto5", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto6", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_masraf1", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_masraf2", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_masraf3", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_masraf4", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi1", SqlDbType = SqlDbType.Float, Value = vergiler[0] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi2", SqlDbType = SqlDbType.Float, Value = vergiler[1] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi3", SqlDbType = SqlDbType.Float, Value = vergiler[2] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi4", SqlDbType = SqlDbType.Float, Value = vergiler[3] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi5", SqlDbType = SqlDbType.Float, Value = vergiler[4] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi6", SqlDbType = SqlDbType.Float, Value = vergiler[5] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi7", SqlDbType = SqlDbType.Float, Value = vergiler[6] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi8", SqlDbType = SqlDbType.Float, Value = vergiler[7] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi9", SqlDbType = SqlDbType.Float, Value = vergiler[8] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi10", SqlDbType = SqlDbType.Float, Value = vergiler[9] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_yuvarlama", SqlDbType = SqlDbType.Float, Value = 0 });

            if (cariCins == 4)
                prmList.Add(new SqlParameter() { ParameterName = "@cha_tpoz", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            else
                prmList.Add(new SqlParameter() { ParameterName = "@cha_tpoz", SqlDbType = SqlDbType.TinyInt, Value = 0 });

            prmList.Add(new SqlParameter() { ParameterName = "@cha_aciklama", SqlDbType = SqlDbType.NVarChar, Value = aciklama });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_trefno", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_sntck_poz", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_karsidcinsi", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_karsid_kur", SqlDbType = SqlDbType.Float, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_karsidgrupno", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_srmrkkodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_reftarihi", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr1", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr2", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr3", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr4", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr5", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr6", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr7", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr8", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_miktari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_aratoplam", SqlDbType = SqlDbType.Float, Value = araToplam });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergipntr", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_istisnakodu", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ver_tev_carpani", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_stopaj", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_savsandesfonu", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergisiz_fl", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_satici_kodu", SqlDbType = SqlDbType.NVarChar, Value = saticiKodu });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_mustahsil_borsa", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_mustahsil_bagkur", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_mustahsil_diger", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalMSDF", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalHamaliye", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalStopaj", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalKomisyonu", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_StFonPntr", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_pos_hareketi", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vardiya_tarihi", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vardiya_no", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vardiya_evrak_ti", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalRusum", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalNavlunTut", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalRehinFuture", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalKomisyon", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_Vade_Farki_Yuz", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_karsisrmrkkodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_EXIMkodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalRehinSandikmiktari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalSandikVrMiktar", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalSandikTutari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalSandikKDVTutari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalrehinSandikTutari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_Tevkifat_turu", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ticaret_turu", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_otvtutari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_otvvergisiz_fl", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_projekodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_sozlesme_DBCno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_sozlesme_RECno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_yat_tes_kodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ciro_cari_kodu", SqlDbType = SqlDbType.NVarChar, Value = cariKodu });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_oivergisiz_fl", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_meblag_ana_doviz_icin_gecersiz_fl", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_meblag_alt_doviz_icin_gecersiz_fl", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_meblag_orj_doviz_icin_gecersiz_fl", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ciroprim_DBCno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ciroprim_RECno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalHamaliyeKdv", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalHamaliyeVergisiz_fl", SqlDbType = SqlDbType.Bit, Value = false });
            object recid = Data.Get.ExecScaler(sqlStr, trn, prmList.ToArray());
            if (recid != null)
            {
                Data.Get.ExecQuery(string.Format("UPDATE CARI_HESAP_HAREKETLERI SET cha_RECid_RECno=cha_RECno WHERE cha_RECno={0}", recid.ToString()), trn);
                return Convert.ToInt32(recid);
            }
            return -1;
        }

        public virtual int SharEkle(EvrakTipleri evrakTip, SqlTransaction trn, string evrakSeri, int evrakSira, DateTime evrakTarihi, int evrakSatir, string stokKodu, string cariKod, string plasiyerKod, decimal miktar, decimal tutar, int kdvSira, decimal kdvOran, int charRecNo, int girisDepoNo, int cikisDepoNo, decimal isk1Tutar, decimal isk2Tutar, decimal isk3Tutar)
        {
            string sqlStr = "if exists(SELECT     sth_RECno FROM         STOK_HAREKETLERI WHERE     (sth_evraktip = @sth_evraktip) AND (sth_evrakno_seri = @sth_evrakno_seri) AND (sth_evrakno_sira = @sth_evrakno_sira) AND (sth_satirno = @sth_satirno)) delete FROM STOK_HAREKETLERI WHERE     (sth_evraktip = @sth_evraktip) AND (sth_evrakno_seri = @sth_evrakno_seri) AND (sth_evrakno_sira = @sth_evrakno_sira) AND (sth_satirno = @sth_satirno);insert into STOK_HAREKETLERI (sth_RECid_DBCno,sth_RECid_RECno,sth_SpecRECno,sth_iptal,sth_fileid,sth_hidden,sth_kilitli,sth_degisti,sth_checksum,sth_create_user,sth_create_date,sth_lastup_user,sth_lastup_date,sth_special1,sth_special2,sth_special3,sth_firmano,sth_subeno,sth_tarih,sth_tip,sth_cins,sth_normal_iade,sth_evraktip,sth_evrakno_seri,sth_evrakno_sira,sth_satirno,sth_belge_no,sth_belge_tarih,sth_stok_kod,sth_isk_mas1,sth_isk_mas2,sth_isk_mas3,sth_isk_mas4,sth_isk_mas5,sth_isk_mas6,sth_isk_mas7,sth_isk_mas8,sth_isk_mas9,sth_isk_mas10,sth_sat_iskmas1,sth_sat_iskmas2,sth_sat_iskmas3,sth_sat_iskmas4,sth_sat_iskmas5,sth_sat_iskmas6,sth_sat_iskmas7,sth_sat_iskmas8,sth_sat_iskmas9,sth_sat_iskmas10,sth_pos_satis,sth_cari_cinsi,sth_cari_kodu,sth_cari_grup_no,sth_isemri_gider_kodu,sth_ismerkezi_kodu,sth_plasiyer_kodu,sth_kur_tarihi,sth_har_doviz_cinsi,sth_har_doviz_kuru,sth_alt_doviz_kuru,sth_stok_doviz_cinsi,sth_stok_doviz_kuru,sth_miktar,sth_miktar2,sth_birim_pntr,sth_tutar,sth_iskonto1,sth_iskonto2,sth_iskonto3,sth_iskonto4,sth_iskonto5,sth_iskonto6,sth_masraf1,sth_masraf2,sth_masraf3,sth_masraf4,sth_vergi_pntr,sth_vergi,sth_masraf_vergi_pntr,sth_masraf_vergi,sth_netagirlik,sth_odeme_op,sth_aciklama,sth_sip_recid_dbcno,sth_sip_recid_recno,sth_fat_recid_dbcno,sth_fat_recid_recno,sth_giris_depo_no,sth_cikis_depo_no,sth_malkbl_sevk_tarihi,sth_cari_srm_merkezi,sth_stok_srm_merkezi,sth_fis_tarihi,sth_fis_sirano,sth_vergisiz_fl,sth_maliyet_ana,sth_maliyet_alternatif,sth_maliyet_orjinal,sth_adres_no,sth_parti_kodu,sth_lot_no,sth_kons_recid_dbcno,sth_kons_recid_recno,sth_subesip_recid_dbcno,sth_subesip_recid_recno,sth_vardiya_tarihi,sth_vardiya_no,sth_satistipi,sth_proje_kodu,sth_ihracat_kredi_kodu,sth_exim_kodu,sth_otv_pntr,sth_otv_vergi,sth_bkm_recid_dbcno,sth_bkm_recid_recno,sth_karsikons_recid_dbcno,sth_karsikons_recid_recno,sth_iade_evrak_seri,sth_iade_evrak_sira,sth_diib_belge_no,sth_diib_satir_no,sth_mensey_ulke_tipi,sth_mensey_ulke_kodu,sth_brutagirlik,sth_halrehmiktari,sth_halrehfiyati,sth_halsandikmiktari,sth_halsandikfiyati,sth_halsandikkdvtutari,sth_disticaret_turu,sth_otvtutari,sth_otvvergisiz_fl,sth_direkt_iscilik_1,sth_direkt_iscilik_2,sth_direkt_iscilik_3,sth_direkt_iscilik_4,sth_direkt_iscilik_5,sth_genel_uretim_1,sth_genel_uretim_2,sth_genel_uretim_3,sth_genel_uretim_4,sth_genel_uretim_5,sth_yat_tes_kodu,sth_oiv_pntr,sth_oiv_vergi,sth_oivvergisiz_fl,sth_fiyat_liste_no,sth_fis_tarihi2,sth_fis_sirano2,sth_rez_recid_dbcno,sth_rez_recid_recno) values (@sth_RECid_DBCno,@sth_RECid_RECno,@sth_SpecRECno,@sth_iptal,@sth_fileid,@sth_hidden,@sth_kilitli,@sth_degisti,@sth_checksum,@sth_create_user,@sth_create_date,@sth_lastup_user,@sth_lastup_date,@sth_special1,@sth_special2,@sth_special3,@sth_firmano,@sth_subeno,@sth_tarih,@sth_tip,@sth_cins,@sth_normal_iade,@sth_evraktip,@sth_evrakno_seri,@sth_evrakno_sira,@sth_satirno,@sth_belge_no,@sth_belge_tarih,@sth_stok_kod,@sth_isk_mas1,@sth_isk_mas2,@sth_isk_mas3,@sth_isk_mas4,@sth_isk_mas5,@sth_isk_mas6,@sth_isk_mas7,@sth_isk_mas8,@sth_isk_mas9,@sth_isk_mas10,@sth_sat_iskmas1,@sth_sat_iskmas2,@sth_sat_iskmas3,@sth_sat_iskmas4,@sth_sat_iskmas5,@sth_sat_iskmas6,@sth_sat_iskmas7,@sth_sat_iskmas8,@sth_sat_iskmas9,@sth_sat_iskmas10,@sth_pos_satis,@sth_cari_cinsi,@sth_cari_kodu,@sth_cari_grup_no,@sth_isemri_gider_kodu,@sth_ismerkezi_kodu,@sth_plasiyer_kodu,@sth_kur_tarihi,@sth_har_doviz_cinsi,@sth_har_doviz_kuru,@sth_alt_doviz_kuru,@sth_stok_doviz_cinsi,@sth_stok_doviz_kuru,@sth_miktar,@sth_miktar2,@sth_birim_pntr,@sth_tutar,@sth_iskonto1,@sth_iskonto2,@sth_iskonto3,@sth_iskonto4,@sth_iskonto5,@sth_iskonto6,@sth_masraf1,@sth_masraf2,@sth_masraf3,@sth_masraf4,@sth_vergi_pntr,@sth_vergi,@sth_masraf_vergi_pntr,@sth_masraf_vergi,@sth_netagirlik,@sth_odeme_op,@sth_aciklama,@sth_sip_recid_dbcno,@sth_sip_recid_recno,@sth_fat_recid_dbcno,@sth_fat_recid_recno,@sth_giris_depo_no,@sth_cikis_depo_no,@sth_malkbl_sevk_tarihi,@sth_cari_srm_merkezi,@sth_stok_srm_merkezi,@sth_fis_tarihi,@sth_fis_sirano,@sth_vergisiz_fl,@sth_maliyet_ana,@sth_maliyet_alternatif,@sth_maliyet_orjinal,@sth_adres_no,@sth_parti_kodu,@sth_lot_no,@sth_kons_recid_dbcno,@sth_kons_recid_recno,@sth_subesip_recid_dbcno,@sth_subesip_recid_recno,@sth_vardiya_tarihi,@sth_vardiya_no,@sth_satistipi,@sth_proje_kodu,@sth_ihracat_kredi_kodu,@sth_exim_kodu,@sth_otv_pntr,@sth_otv_vergi,@sth_bkm_recid_dbcno,@sth_bkm_recid_recno,@sth_karsikons_recid_dbcno,@sth_karsikons_recid_recno,@sth_iade_evrak_seri,@sth_iade_evrak_sira,@sth_diib_belge_no,@sth_diib_satir_no,@sth_mensey_ulke_tipi,@sth_mensey_ulke_kodu,@sth_brutagirlik,@sth_halrehmiktari,@sth_halrehfiyati,@sth_halsandikmiktari,@sth_halsandikfiyati,@sth_halsandikkdvtutari,@sth_disticaret_turu,@sth_otvtutari,@sth_otvvergisiz_fl,@sth_direkt_iscilik_1,@sth_direkt_iscilik_2,@sth_direkt_iscilik_3,@sth_direkt_iscilik_4,@sth_direkt_iscilik_5,@sth_genel_uretim_1,@sth_genel_uretim_2,@sth_genel_uretim_3,@sth_genel_uretim_4,@sth_genel_uretim_5,@sth_yat_tes_kodu,@sth_oiv_pntr,@sth_oiv_vergi,@sth_oivvergisiz_fl,@sth_fiyat_liste_no,@sth_fis_tarihi2,@sth_fis_sirano2,@sth_rez_recid_dbcno,@sth_rez_recid_recno);UPDATE STOK_HAREKETLERI SET sth_RECid_RECno=sth_RECno WHERE sth_RECno=@@IDENTITY;SELECT @@IDENTITY";
            List<SqlParameter> prmList = new List<SqlParameter>();
            int[] tipler = SharEvrakTip(evrakTip);

            prmList.Add(new SqlParameter() { ParameterName = "@sth_RECid_DBCno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_RECid_RECno", SqlDbType = SqlDbType.Int, Value = -1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_SpecRECno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_iptal", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_fileid", SqlDbType = SqlDbType.SmallInt, Value = 16 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_hidden", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_kilitli", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_degisti", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_checksum", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_create_user", SqlDbType = SqlDbType.SmallInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_create_date", SqlDbType = SqlDbType.DateTime, Value = DateTime.Now });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_lastup_user", SqlDbType = SqlDbType.SmallInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_lastup_date", SqlDbType = SqlDbType.DateTime, Value = DateTime.Now });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_special1", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_special2", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_special3", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_firmano", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_subeno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_tarih", SqlDbType = SqlDbType.DateTime, Value = evrakTarihi });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_tip", SqlDbType = SqlDbType.TinyInt, Value = tipler[0] });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_cins", SqlDbType = SqlDbType.TinyInt, Value = tipler[1] });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_normal_iade", SqlDbType = SqlDbType.TinyInt, Value = tipler[2] });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_evraktip", SqlDbType = SqlDbType.TinyInt, Value = tipler[3] });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_evrakno_seri", SqlDbType = SqlDbType.NVarChar, Value = evrakSeri });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_evrakno_sira", SqlDbType = SqlDbType.Int, Value = evrakSira });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_satirno", SqlDbType = SqlDbType.Int, Value = evrakSatir });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_belge_no", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_belge_tarih", SqlDbType = SqlDbType.DateTime, Value = evrakTarihi });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_stok_kod", SqlDbType = SqlDbType.NVarChar, Value = stokKodu });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_isk_mas1", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_isk_mas2", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_isk_mas3", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_isk_mas4", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_isk_mas5", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_isk_mas6", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_isk_mas7", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_isk_mas8", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_isk_mas9", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_isk_mas10", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sat_iskmas1", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sat_iskmas2", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sat_iskmas3", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sat_iskmas4", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sat_iskmas5", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sat_iskmas6", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sat_iskmas7", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sat_iskmas8", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sat_iskmas9", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sat_iskmas10", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_pos_satis", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_cari_cinsi", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_cari_kodu", SqlDbType = SqlDbType.NVarChar, Value = cariKod });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_cari_grup_no", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_isemri_gider_kodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_ismerkezi_kodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_plasiyer_kodu", SqlDbType = SqlDbType.NVarChar, Value = plasiyerKod });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_kur_tarihi", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_har_doviz_cinsi", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_har_doviz_kuru", SqlDbType = SqlDbType.Float, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_alt_doviz_kuru", SqlDbType = SqlDbType.Float, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_stok_doviz_cinsi", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_stok_doviz_kuru", SqlDbType = SqlDbType.Float, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_miktar", SqlDbType = SqlDbType.Float, Value = miktar });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_miktar2", SqlDbType = SqlDbType.Float, Value = miktar });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_birim_pntr", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_tutar", SqlDbType = SqlDbType.Float, Value = tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_iskonto1", SqlDbType = SqlDbType.Float, Value = isk1Tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_iskonto2", SqlDbType = SqlDbType.Float, Value = isk2Tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_iskonto3", SqlDbType = SqlDbType.Float, Value = isk3Tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_iskonto4", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_iskonto5", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_iskonto6", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_masraf1", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_masraf2", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_masraf3", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_masraf4", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_vergi_pntr", SqlDbType = SqlDbType.TinyInt, Value = kdvSira });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_vergi", SqlDbType = SqlDbType.Float, Value = kdvOran });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_masraf_vergi_pntr", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_masraf_vergi", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_netagirlik", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_odeme_op", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_aciklama", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sip_recid_dbcno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_sip_recid_recno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_fat_recid_dbcno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_fat_recid_recno", SqlDbType = SqlDbType.Int, Value = charRecNo });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_giris_depo_no", SqlDbType = SqlDbType.Int, Value = girisDepoNo });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_cikis_depo_no", SqlDbType = SqlDbType.Int, Value = cikisDepoNo });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_malkbl_sevk_tarihi", SqlDbType = SqlDbType.DateTime, Value = evrakTarihi });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_cari_srm_merkezi", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_stok_srm_merkezi", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_fis_tarihi", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_fis_sirano", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_vergisiz_fl", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_maliyet_ana", SqlDbType = SqlDbType.Float, Value = tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_maliyet_alternatif", SqlDbType = SqlDbType.Float, Value = tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_maliyet_orjinal", SqlDbType = SqlDbType.Float, Value = tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_adres_no", SqlDbType = SqlDbType.Int, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_parti_kodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_lot_no", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_kons_recid_dbcno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_kons_recid_recno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_subesip_recid_dbcno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_subesip_recid_recno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_vardiya_tarihi", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_vardiya_no", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_satistipi", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_proje_kodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_ihracat_kredi_kodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_exim_kodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_otv_pntr", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_otv_vergi", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_bkm_recid_dbcno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_bkm_recid_recno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_karsikons_recid_dbcno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_karsikons_recid_recno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_iade_evrak_seri", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_iade_evrak_sira", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_diib_belge_no", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_diib_satir_no", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_mensey_ulke_tipi", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_mensey_ulke_kodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_brutagirlik", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_halrehmiktari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_halrehfiyati", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_halsandikmiktari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_halsandikfiyati", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_halsandikkdvtutari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_disticaret_turu", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_otvtutari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_otvvergisiz_fl", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_direkt_iscilik_1", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_direkt_iscilik_2", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_direkt_iscilik_3", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_direkt_iscilik_4", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_direkt_iscilik_5", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_genel_uretim_1", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_genel_uretim_2", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_genel_uretim_3", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_genel_uretim_4", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_genel_uretim_5", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_yat_tes_kodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_oiv_pntr", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_oiv_vergi", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_oivvergisiz_fl", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_fiyat_liste_no", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_fis_tarihi2", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_fis_sirano2", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_rez_recid_dbcno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@sth_rez_recid_recno", SqlDbType = SqlDbType.Int, Value = 0 });
            object sonuc = Data.Get.ExecScaler(sqlStr, trn, prmList.ToArray());
            if (sonuc != null)
                return Convert.ToInt32(sonuc);
            else
                return -1;
        }

        public virtual int[] SharEvrakTip(EvrakTipleri evrakTip)
        {
            int[] sonuc = new int[4];
            switch (evrakTip)
            {
                case EvrakTipleri.SatisFaturasi:
                    sonuc[0] = 1;
                    sonuc[1] = 0;
                    sonuc[2] = 0;
                    sonuc[3] = 4;
                    break;
                case EvrakTipleri.AlisFaturasi:
                    sonuc[0] = 0;
                    sonuc[1] = 0;
                    sonuc[2] = 0;
                    sonuc[3] = 3;
                    break;
                case EvrakTipleri.AlisIrsaliyesi:
                    sonuc[0] = 0;
                    sonuc[1] = 0;
                    sonuc[2] = 0;
                    sonuc[3] = 13;
                    break;
                case EvrakTipleri.DepoSevk:
                    sonuc[0] = 2;
                    sonuc[1] = 6;
                    sonuc[2] = 0;
                    sonuc[3] = 2;
                    break;
                default:
                    break;
            }
            return sonuc;
        }

        public virtual int[] CharEvrakTip(EvrakTipleri evrakTip)
        {
            int[] sonuc = new int[4];
            switch (evrakTip)
            {
                case EvrakTipleri.SatisFaturasi:
                    sonuc[0] = 0;
                    sonuc[1] = 7;
                    sonuc[2] = 0;
                    sonuc[3] = 63;
                    break;
                case EvrakTipleri.AlisFaturasi:
                    sonuc[0] = 1;
                    sonuc[1] = 6;
                    sonuc[2] = 0;
                    sonuc[3] = 0;
                    break;
            }
            return sonuc;
        }

        public void BaglantiKaydet(EvrakTipleri evrakTip, int fastId, int mikroSharId, int mikroCharId, string mikroSeri, int mikroSira, SqlTransaction trn)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("if exists(select id from FASTREST_AKTARILANLAR WITH (NOLOCK) where  fastrest_id= {0} and evrak_tip={5} )");
            sb.Append("update FASTREST_AKTARILANLAR set mikro_shar_id={1}, mikro_char_id={2}, mikro_evrak_seri='{3}', mikro_evrak_sira={4} where fastrest_id={0} and evrak_tip={5} else ");
            sb.Append("insert into FASTREST_AKTARILANLAR (evrak_tip, fastrest_id, mikro_shar_id, mikro_char_id, mikro_evrak_seri, mikro_evrak_sira) values ({5},{0},{1},{2},'{3}',{4})");

            try
            {
                Data.Get.ExecQuery(string.Format(sb.ToString(), fastId, mikroSharId, mikroCharId, mikroSeri, mikroSira, Convert.ToInt32(evrakTip)), trn);
            }
            catch (Exception ex)
            {
                Logging.GetLog.ErrorLog(ex);
            }
        }

        public virtual int MaxEvrakNo(EvrakTipleri evrakTip, string seri, SqlTransaction trn)
        {
            string sqlStr = string.Empty;
            int[] tipler = null;
            switch (evrakTip)
            {
                case EvrakTipleri.SatisFaturasi:
                case EvrakTipleri.AlisFaturasi:
                    tipler = CharEvrakTip(evrakTip);
                    sqlStr = string.Format("SELECT     ISNULL(MAX(cha_evrakno_sira), 0) + 1 AS sira  FROM CARI_HESAP_HAREKETLERI WHERE     (cha_tip = {0}) AND (cha_cinsi = {1}) AND (cha_normal_Iade = {2}) AND (cha_evrak_tip = {3}) AND (cha_evrakno_seri = '{4}')", tipler[0], tipler[1], tipler[2], tipler[3], seri);
                    break;
                case EvrakTipleri.AlisIrsaliyesi:
                case EvrakTipleri.DepoSevk:
                    tipler = SharEvrakTip(evrakTip);
                    sqlStr = string.Format("SELECT     ISNULL(MAX(sth_evrakno_sira), 0) + 1 AS sira  FROM STOK_HAREKETLERI WHERE     (sth_tip = {0}) AND (sth_cins = {1}) AND (sth_normal_iade = {2}) AND (sth_evraktip = {3}) AND (sth_evrakno_seri = '{4}')", tipler[0], tipler[1], tipler[2], tipler[3], seri);
                    break;
            }

            object sonuc = Data.Get.ExecScaler(sqlStr, trn);
            if (sonuc != null)
                return Convert.ToInt32(sonuc);
            else
                return 1;
        }

        public void BaglantiDuzelt(EvrakTipleri evrakTip, int fastId, SqlTransaction trn)
        {
            try
            {
                object deger = Data.Get.ExecScaler(string.Format("exec sp_executesql N'SELECT cast(mikro_shar_id as varchar(25)) + ''/'' + cast(mikro_char_id as varchar(25)) FROM FASTREST_AKTARILANLAR WITH (NOLOCK) where  fastrest_id={1} and evrak_tip={0} '", Convert.ToInt32(evrakTip), fastId), trn);
                if (deger != null)
                {
                    int[] sonuc = new int[2];
                    sonuc[0] = Convert.ToInt32(deger.ToString().Split('/')[0]);
                    sonuc[1] = Convert.ToInt32(deger.ToString().Split('/')[1]);

                    SharSatirSil(sonuc[0], trn);
                    CharSatirSil(sonuc[1], trn);

                    Data.Get.ExecQuery(string.Format("exec sp_executesql N'DELETE FROM FASTREST_AKTARILANLAR where  fastrest_id= {1} and evrak_tip={0}'", Convert.ToInt32(evrakTip), fastId), trn);
                }
            }
            catch (Exception ex)
            {
                Logging.GetLog.ErrorLog(ex);
            }
        }

        void SharSatirSil(int sharId, SqlTransaction trn)
        {
            Data.Get.ExecQuery(string.Format("exec sp_executesql N'DELETE FROM STOK_HAREKETLERI  WHERE     (sth_RECno = {0})'", sharId), trn);
        }

        void CharSatirSil(int charId, SqlTransaction trn)
        {
            Data.Get.ExecQuery(string.Format("exec sp_executesql N'DELETE FROM CARI_HESAP_HAREKETLERI  WHERE     (cha_RECno = {0})'", charId), trn);
        }

        public bool AddtoKasa(string kod, string adi, SqlTransaction trn)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("if exists(select kas_RECno from KASALAR WITH (NOLOCK) where kas_kod= '{0}')");
            sb.Append("update KASALAR set kas_SpecRecno=0,kas_iptal=0,kas_fileid=53,kas_hidden=0,kas_kilitli=0,kas_degisti=0,kas_checksum=0,kas_lastup_user=1,kas_lastup_date='{1}',kas_special1='',kas_special2='',kas_special3='',kas_tip=0,kas_firma_no=0,kas_isim='{2}',kas_doviz_cinsi=0,kas_bankakodu='',kas_nakakincelenmesi=0 where kas_kod='{0}' else ");
            sb.Append("insert into KASALAR (kas_RECid_DBCno,kas_RECid_RECno,kas_SpecRecno,kas_iptal,kas_fileid,kas_hidden,kas_kilitli,kas_degisti,kas_checksum,kas_create_user,kas_create_date,kas_lastup_user,kas_lastup_date,kas_special1,kas_special2,kas_special3,kas_tip,kas_firma_no,kas_kod,kas_isim,kas_muh_kod,kas_doviz_cinsi,kas_bankakodu,kas_nakakincelenmesi) values (0,-1,0,0,53,0,0,0,0,1,'{1}',1,'{1}','','','',0,0,'{0}','{2}','100',0,'',0) ");
            sb.Append(";update KASALAR set kas_RECid_RECno=kas_RECno where kas_RECid_RECno=-1");

            try
            {
                Data.Get.ExecQuery(string.Format(sb.ToString(), kod, string.Format("{0}-{1}-{2} {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second), adi), trn);
                return true;
            }
            catch (Exception ex)
            {
                Logging.GetLog.ErrorLog(ex);
                return false;
            }
        }

        public void EvrakSil(EvrakTipleri evrakTip, string seri, int sira, SqlTransaction trn)
        {
            int[] sharTip = SharEvrakTip(evrakTip);
            int[] charTip = CharEvrakTip(evrakTip);
            Data.Get.ExecQuery(string.Format("DELETE FROM CARI_HESAP_HAREKETLERI WHERE     (cha_tip = {0}) AND (cha_cinsi = {1}) AND (cha_normal_Iade = {2}) AND (cha_evrak_tip = {3}) AND (cha_evrakno_seri = '{4}') AND (cha_evrakno_sira = {5}) AND (cha_satir_no = 0)", charTip[0], charTip[1], charTip[2], charTip[3], seri, sira), trn);
            Data.Get.ExecQuery(string.Format("DELETE FROM STOK_HAREKETLERI WHERE     (sth_tip = {0}) AND (sth_cins = {1}) AND (sth_normal_iade = {2}) AND (sth_evraktip = {3}) AND (sth_evrakno_seri = '{4}') AND (sth_evrakno_sira = {5})", sharTip[0], sharTip[1], sharTip[2], sharTip[3], seri, sira), trn);
        }
    }
}
